package accesoBD;

import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;

/**
 * Clase auxiliar para construir el cliente de ejemplo.
 * @version 1.2
 * @author Juan Manuel Rodríguez González
 */
public class OutputResultSet {

    /**
     * Comprueba la existencia de un usuario en la base de datos.
     * @param columnas Array de objetos String que representa las columnas de
     * salida de una cierta consulta.
     */
    private static void mostrarFilaConsola(String[] columnas) {
        for (int i = 0; i < columnas.length; i++) {
            System.out.print(columnas[i] + "\t");
        }
        System.out.println();
    }

    /**
     * Comprueba la existencia de un usuario en la base de datos.
     * @param columnas Array de objetos String que representa las columnas de
     * salida de una cierta consulta.
     */
    private static String[] extraerFila(ResultSet rs) throws SQLException {
        ResultSetMetaData rsmd = rs.getMetaData();
        int numberOfColumns = rsmd.getColumnCount(), tipo;
        String[] res = null;

        // **** optimizar: dimensionar solo cuando tenga un numero distinto de columnas
        res = new String[numberOfColumns];
        for (int i = 1; i <= numberOfColumns; i++) {
            res[i - 1] = rs.getString(i);
        }

        return res;
    }

    /**
     * Muestra por pantalla el resultado de una consulta
     * @param rs Objeto ResultSet que contiene el resultado de una cierta consulta.
     * @throws SQLException 
     */
    public static void mostrarTodoConsola(ResultSet rs) throws SQLException {
        while (rs.next()) {
            mostrarFilaConsola(extraerFila(rs));
        }
    }
}
